package com.cmc.cloud.cmclink.doc.api.document.req.si;

import com.cmc.cloud.cmclink.doc.api.document.rep.VgmRespDto;
import com.cmc.cloud.cmclink.doc.api.document.req.AttachmentUpdateReqDto;
import com.cmc.cloud.cmclink.doc.api.document.req.RequirementsUpdateReqDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 拆单详情返回
 * @author 檀竹亮
 * @since 2025/09/18
 */
@Schema(description = "管理后台 - 拆单详情 Response VO")
@Data
@EqualsAndHashCode()
@AllArgsConstructor
@NoArgsConstructor
public class BlnoSplitInfoDto {

    @Schema(description = "提单主信息主表数据(原单)")
    private BlnoBaseInfoDto originalBaseVO;

    @Schema(description = "提单收发通信息(原单)")
    private List<BlnoScnUpdateReqDto> originalScns;

    @Schema(description = "提单箱信息(原单)")
    private List<BlnoCntrUpdateReqDto> originalCntrs;

    @Schema(description = "航次信息(原单)")
    private List<BlnoVslvoyUpdateReqDto> originalVslvoys;

    @Schema(description = "(原单)箱的VGM信息")
    private List<VgmRespDto> vgmRespDtos;

    @Schema(description = "提单货物信息(原单)")
    private List<BlnoCargoUpdateReqDto> originalCargos;

    @Schema(description = "提单支付方式信息(原单)")
    private List<BlnoPaymentUpdateReqDto> originalPayments;

    @Schema(description = "提单附件信息(原单)")
    private List<AttachmentUpdateReqDto> originalAttachments;

    @Schema(description = "附加要求信息(原单)")
    private List<RequirementsUpdateReqDto> originalRequirements;

    @Schema(description = "提单拆分结果列表", requiredMode = Schema.RequiredMode.REQUIRED)
    private List<BlnoSpiltChildDto> spiltChildDtos;

    @Schema(description = "拆单按钮是否操作", requiredMode = Schema.RequiredMode.REQUIRED)
    private Boolean splitButton;

    @Schema(description = "拆单状态 拆单审批中:True", requiredMode = Schema.RequiredMode.REQUIRED)
    private Boolean splitStatus;
}
